package com.example.airtest;

import com.blankj.utilcode.util.AppUtils;
import com.blankj.utilcode.util.LogUtils;
import com.fandou.base.BaseAPP;
import com.fandou.paiti.PaitiManager;
import com.jeremyliao.liveeventbus.LiveEventBus;

import java.util.ArrayList;

/**
 * @author Jm
 * @date 2020/7/6 10:26
 * @description
 */
public class APP extends BaseAPP {

    @Override
    public void onCreate() {
        super.onCreate();

        PaitiManager.init(this);
        initLog();

//        LiveEventBus
//                .config().autoClear(false).lifecycleObserverAlwaysActive(false).enableLogger(true);
    }


    // init it in ur application
    private void initLog() {
        LogUtils.Config config = LogUtils.getConfig()
                .setLogSwitch(AppUtils.isAppDebug()) // 设置 log 总开关，包括输出到控制台和文件，默认开
                .setConsoleSwitch(AppUtils.isAppDebug()) // 设置是否输出到控制台开关，默认开
                .setGlobalTag(null) // 设置 log 全局标签，默认为空
                // 当全局标签不为空时，我们输出的 log 全部为该 tag，
                // 为空时，如果传入的 tag 为空那就显示类名，否则显示 tag
                .setLogHeadSwitch(true) // 设置 log 头信息开关，默认为开
                .setLog2FileSwitch(false) // 打印 log 时是否存到文件的开关，默认关
                .setBorderSwitch(false) // 输出日志是否带边框开关，默认开
                .setSingleTagSwitch(false) // 一条日志仅输出一条，默认开，为美化 AS 3.1 的 Logcat
                .setConsoleFilter(LogUtils.V) // log 的控制台过滤器，和 logcat 过滤器同理，默认 Verbose
                .setFileFilter(LogUtils.V) // log 文件过滤器，和 logcat 过滤器同理，默认 Verbose
                .setStackDeep(1) // log 栈深度，默认为 1
                .setStackOffset(0) // 设置栈偏移，比如二次封装的话就需要设置，默认为 0
                .setSaveDays(3) // 设置日志可保留天数，默认为 -1 表示无限时长
                // 新增 ArrayList 格式化器，默认已支持 Array, Throwable, Bundle, Intent 的格式化输出
                .addFormatter(new LogUtils.IFormatter<ArrayList<Object>>() {
                    @Override
                    public String format(ArrayList<Object> list) {
                        return "LogUtils Formatter ArrayList:" + list;
                    }
                });
        LogUtils.i(config.toString());
    }
}
